A Satellite Positioning System (SATPS), which includes a Global Positioning System (GPS) and a Global Orbiting Navigational Satellite System (GLONASS) as particular implementations, uses signals received from three or more SATPS satellites to determine either two or three location coordinates of the SATPS antenna receiving these signals and also the receiver time offset from the system time, based upon tracking a particular digital code and/or frequency that is unique for each such satellite, plus the known location of each such SATPS satellite as a function of time in its particular orbit. One implementation of the SATPS, GPS, is discussed by Tom Logsdon in The NAVSTAR Global Positioning System, Van Nostrand Reinhold, 1992, pp. 1-90, incorporated by reference herein. Particular aspects of GPS and GLONASS are discussed in detail below.
Within an SATPS, two methods are available for computing the location solution for an SATPS antenna, based upon SATPS-derived pseudorange and Doppler shift measurements. The first method is characterized as a snapshot or least squares solution in which independent location and velocity solutions are computed, using only present measurements (valid at the present measurement epoch or "snapshot" time of solution). In this case, the location and velocity solutions in one epoch are independent of these solutions during any other epoch.
In almost all receivers using snapshot solutions, some filtering of the pseudorange measurements with Doppler is performed. Doppler measurements are typically at least 10-20 times less noisy than pseudorange measurements. However, even with measurement smoothing, the dynamic errors between solutions are still independent when concurrent measurements are obtained for each satellite used in the solution at each epoch. If a satellite is briefly obscured, most receivers will re-use a previous pseudorange in the solution by propagating the last measurement forward in time with the Doppler measurement for a brief time before a new satellite solution set is chosen. During this time, accelerations will induce correlated errors in consecutive snapshot solutions. However, most of the time, the snapshot solution sequence can be modelled as an independent sequence of position estimates.
In an alternative approach, elaborate filtering, such as Kalman filtering, is used to assimilate measurement information and to update the location and/or velocity solutions, based in part on solutions determined at preceding measurement times. This filtering system contains a model of the measurement errors and a model of the nominal dynamical motion that the SATPS signal receiver will experience. These models are used to adjust the amount of uncertainty that accumulates between measurement times when the solution is updated. The size of these uncertainties determines the size of the gain factors used to blend the new measurements with the previous filtered solutions, in order to generate new filtered solutions.
The Kalman filter approach produces a filtered solution with a time constant which is based upon the nominal vehicle motion and measurement error models. By contrast, the snapshot approach makes no assumptions about the vehicle dynamics and produces an unfiltered solution. These two approaches produce different behaviors at equivalent times for non-steady state situations caused by satellite constellation switches or by other dynamical changes.
The Kalman filter modelling process requires that the parameters to be estimated can be modelled as random variables with driving functions that are in the form of a linear system driven by white noise. It is not possible to explicitly model acceleration induced position and velocity errors with such a model because acceleration produces a deterministic change in the position and velocity. Most filters that try to model acceleration induced errors incorporate some nominal acceleration-like model to produce a desired amount of uncertainty between fixes.
When larger-than-expected residuals occur between the observed and predicted measurements due to unmodeled dynamics or measurement errors, some filters adapt their error models by increasing the dynamic or measurement uncertainty. which increases the gain and decreases the time lag in the solution. Some filters are not adaptive, in which case the filter solution may lag the true dynamics for a short time after the acceleration occurs if the error model is too small for the dynamics at hand. Alternatively, the filter model may assume the presence of worst case dynamics for the particular application. In this instance, the gains would always be large enough to assimilate large, acceleration-driven residuals, and the time lag would be minimized, but the solution would be overly noisy when the dynamics were more benign. Thus, the filtered solution does not explicitly prevent step-like jumps when unmodeled measurements errors are experienced because the filtered solution must keep the gains on the measurements large enough to react to sudden changes in the vehicle motion.
The so-called snapshot approach is insensitive to system dynamics, because the solution is based solely upon current measurements, and the solution has no lag during dynamics if current measurements are maintained for each satellite in the solution. However, snapshot solutions experience jumps in position when the set of measurement errors associated with the satellites used in the solution changes. The position jumps with the snapshot solution are usually worse than with the Kalman filter solution because the measurements are weighted more heavily in the snapshot solution than in the filtered solution.
Systems modelled by either of these approaches will experience sudden jumps in the SATPS-determined location solution when the particular satellites used for the solution (the "solution constellation" of satellites) changes. This is commonly caused by a temporary blockage of one or more of the SATPS signals received from the satellites in the solution constellation. After a short hold-off to minimize the frequency of constellation switching (during which old measurements may be temporarily re-used), the receiver will pick a new set of satellites from tile available satellites for the location solution, and as a result, a different position offset may occur. If the blocked satellites become visible again, the receiver mnay choose the previous solution set again resulting in a jump back to the previous offset. When a solution constellation changes, a jump in indicated location coordinates occurs because a different set of errors is used in the new solution.
A description of the types of errors associated with each measurement is appropriate to understand how the location jumps occur. Ideally, the system would measure the range from the receiver to the satellite with no error, and any combination of satellites with reasonable geometry would generate the same exact solution. In reality, each satellite has a somewhat different set of associated errors, and different constellations of satellites will produce different location errors, according to the size of the measurement errors and the how each satellite is weighted in the solution according to the relative geometry of the satellites, which changes for each set of satellites.
With a conventional SATPS, the total measurement error for a particular satellite will have a number of contributions. The receiver and antenna will experience some receiver noise and multipath signal errors. Inaccuracies in the satellite position and clock models, and time-of-flight errors due to propagation through the ionosphere and troposphere produce additional errors. The ionosphere and troposphere propagation errors can be reduced with careful modelling of such effects. However, the inaccuracy of these models increases markedly as the particular satellite approaches the horizon and the associated air mass for signal propagation increases. The error contributed by ionospheric propagation delay can be as large as 30 meters, and the ionospheric model generally removes about 50 percent of the error. The error contributed by tropospheric propagation delay is much smaller and more accurately modelled.
The U.S. Department of Defense ("DoD") has added an additional error source to GPS known as Selective Availability (SA). This error dithers the transmitted GPS signal to produce a sinusoidal-like range error with an amplitude of up to 50 meters and a period of roughly 100-300 seconds. The effect of SA on range and range-rate is coherent, so the effect on the Doppler measurement is the derivative of the effect on the pseudorange (this makes the error almost impossible to remove with a single antenna system). In a stand-alone GPS receiver, SA is the largest error source. SA errors may also be induced by corrupting the parameters sent by the satellite and used to compute the satellite location and clock state. The U.S. DoD maintains that SA induced horizontal position errors will be less than 100 meters 95 percent of the time, when good satellite geometry is available. However, position errors on the order of 500 meters have been observed when the satellite geometry is higher than normal. Thus, SA can induce very large jumps between positions with good and poor geometry.
Where differential SATPS ("DSATPS") information is available, most of the satellite errors and the propagation errors can be removed or substantially reduced before the location solutions are computed. However, the inaccuracy of a DSATPS solution may increase to 25 meters and beyond as the distance between a reference receiver and a mobile receiver increases above approximately 100 kilometers. The receiver noise errors and multipath signal errors are not reduced using DSATPS solutions. Thus, even with DSATPS, some measurement errors will remain which can induce position jumps when the solution constellation changes.
Some workers in signal processing have developed techniques that use rate of change of a variable or similar techniques to vary the approach used for subsequent processing of signals received. U.S. Pat. No. 4,776,035, issued to Duggan, discloses a satellite signal lockup detection system that senses the onset of, and avoids, power saturation in a satellite signal channel due to perceived signal fading. This signal fading could occur because of the presence of rain or other weather variables that attenuate such signals. The rate of change of power output from an Earth station that communicates with the satellite is continuously monitored to determine approach to a power "avalanche" condition that can ultimately lead to lockup. When this rate of change exceeds a selected threshold value, Lhe system places an upper limit on signal power that is close to, but below, the power required for initiation of avalanche.
An adaptive signal modification system for discriminating between high level and low level signals is disclosed by Nakamura in U.S. Pat. No. 4,939,750. An input signal is summed with a compensation signal that is adaptively determined from the inverse of a running average of preceding input signals.
Begin, in U.S. Pat. No. 4,995,019, discloses a time period measurement system with adaptive averaging of the measurements. The time period measured is expressed as an integral number of units of constant length .DELTA.t.sub.u plus a fractional part f.DELTA.t.sub.u of that unit with 0.ltoreq.f&lt;1. The fractional part is faltered adapfively to provide an average value of the fraction number f that depends upon the presently measured fraction number and previously measured fraction numbers.
Chung discloses a system for determining digital filter coefficients, using an iterative, adaptive process, in U.S. Pat. No. 5,058,047. The filter coefficients are changed during each iteration by an amount that depends upon the stochastic average of certain gradient signals. The gradient signals are formed as a weighted sum of (1) the product, .epsilon.(j).times.(j), of the instantaneous values of a signal error function and a signal input function at observation time j and (2) the stochastic average of the product .epsilon.(j-1).times.(j-1), formed at the preceding observation time j-1, with adaptively determined weighting factors. The stochastic average of the product .epsilon.(j-1).times.(j-1) uses the cross-correlation between the error signal and the input signal for preceding values.
Adaptive suppression of threshold impulse noise is disclosed by Barton et al in U.S. Pat. No. 5,119,321. A sample-and-hold circuit receives and stores a sequence of input digital signals. In one embodiment, consecutive signal input times are chosen so that the probability of noise spikes occurring in any two consecutive signal input time intervals is negligible, and a new input signal is compared with selected preceding input signals. In another embodiment, the new input signal is compared with a running average of the signals in the sample-and-hold circuit. If the new input signal differs from the comparison signal by too large an amount, the system concludes that the new signal contains impulse noise and discards the new input signal.
U.S. Pat. No. 5,138,555, issued to Albrecht, discloses a helmet-mounted display, worn by an aircraft pilot, that performs adaptive prediction tracking, using a Least Mean Squares algorithm to predict the helmet location a few tenths of a second in the future. Only helmet location data, not velocity or acceleration data, are used for this purpose. The algorithm relies in part upon helmet movement patterns observed and stored at earlier times.
An adaptive digital filtering system, with a variable time increment between consecutive observations varying inversely with the rate of change of the input signal, is disclosed by Countryman in U.S. Pat. No. 5,150,317. The time increment varies between a minimum value, used for relatively high rates of change of the input signal, and a maximum value, used for relatively low rates of change of the input signal. Between these minimum and maximum values, the time increment varies linearly with a parameter A that depends upon the square of the rate of change of one or more selected bits of the digital input signal.
Ng discloses a technique for signal prediction in a time-varying system, using a Maximum Likelihood (ML) algorithm to estimate certain system parameters, in U.S. Pat. No. 5,150,414. A time-dependent, monotonically decreasing weighting function w(t)=at.sup.2 +bt+c and its complement 1-w(t) are used to weight open loop data (complete data sets) and closed loop data (incomplete data sets), respectively, used in the ML computation, to reflect the cumulative importance of these data sets and to reduce ML computation time.
U.S. Pat. No. 5,152,292, issued to Karp, discloses an adaptive rejection filter for rejection of "flash" (unwanted) color imaging signals in an ultrasound imaging system. Flash signals often arise from a Doppler-sensed velocity of a moving part of the ultrasound target that is too high relative to the velocities of other parts of the target. The system assigns a flash strength to each signal portion of a target scan line, depending upon the magnitude and rate of change of that signal portion. For a given scan line, the number of flash strengths in each of a selected group of flash strength ranges is analyzed and compared, in order to assign a representative flash strength to that scan line. The collection of signals for each scan line is stored and time delayed until the representative flash strength is determined for that scan line. This collection of scan line signals is then filtered to reduce the rate of change of selected scan line portions below a selected upper limit (or above a selected lower limit) on signal rate of change, in order to provide an ultrasound image that contains little or no flash. The system includes a persistence signal moclifier that blends the present, unfiltered signal (possibly containing flash) with a previous persistence signal in order to smooth the flash rejection level(s) as time passes.
These patents disclose interesting features, such as use of magnitude or rate-of-change of an input variable for adaptively determining filter values, or use of running averages of preceding input signals. However, these patents disclose systems that provide (1) discard of the new input signal if the change is too great or (2) modification of the new input signal value so that it lies in an acceptable range. What is needed is a system that (1) allows acceptance, after a time, of a persistent input signal whose value differs substantially from the preceding input signal values and (2) provides a filtered signal that makes a relatively smooth transition between the average of preceding input signal values and the average value of new, persistent input signal values that differ greatly froran the average of the preceding input signal values.